/*
 * 用于关联excelize包中的私有函数和方法
 */
package stream

import (
	"bytes"
	"encoding/xml"
	"github.com/360EntSecGroup-Skylar/excelize/v2"
	_ "github.com/360EntSecGroup-Skylar/excelize/v2"
	"os"
	_ "unsafe"
)

type xlsxWorksheetRef struct {
}

type StreamWriterRef struct {
	File       *excelize.File
	Sheet      string
	SheetID    int
	worksheet  *xlsxWorksheetRef
	rawData    bufferedWriterRef
	tableParts string
}

type bufferedWriterRef struct {
	tmp *os.File
	buf bytes.Buffer
}

type xlsxFRef struct {
}

type xlsxSIRef struct {
}

type xlsxCRef struct {
	XMLName  xml.Name `xml:"c"`
	XMLSpace xml.Attr `xml:"space,attr,omitempty"`
	R        string   `xml:"r,attr,omitempty"` // Cell ID, e.g. A1
	S        int      `xml:"s,attr,omitempty"` // Style reference.
	// Str string `xml:"str,attr,omitempty"` // Style reference.
	T  string     `xml:"t,attr,omitempty"` // Type.
	F  *xlsxFRef  `xml:"f,omitempty"`      // Formula
	V  string     `xml:"v,omitempty"`      // Value
	IS *xlsxSIRef `xml:"is"`
}

//go:linkname setCellValFunc github.com/360EntSecGroup-Skylar/excelize/v2.setCellValFunc
func setCellValFunc(c *xlsxCRef, val interface{}) (err error)

//go:linkname (*bufferedWriterRef).Write github.com/360EntSecGroup-Skylar/excelize/v2.(*bufferedWriter).Write
func (bw *bufferedWriterRef) Write(p []byte) (n int, err error)

//go:linkname (*bufferedWriterRef).WriteString github.com/360EntSecGroup-Skylar/excelize/v2.(*bufferedWriter).WriteString
func (bw *bufferedWriterRef) WriteString(p string) (n int, err error)

//go:linkname (*bufferedWriterRef).Sync github.com/360EntSecGroup-Skylar/excelize/v2.(*bufferedWriter).Sync
func (bw *bufferedWriterRef) Sync() (err error)
